'''列表 可变序列'''
'''切片'''
# lis = ['hello', 'world', 98, 'hello']
# print(lis[0], '\n', lis[-2], '\n', lis.index(98), '\n', lis.index('hello', 1, 4))  # 如果列表中有相同元素，index只返回第一个
# lis = ['12', '13', '14', '30', '34', '55']
# print(lis[0:5:2])
# print(lis[::3])  # 下标0,3
# print(lis[2::])
# print(lis[-1::-2])  # 负数时从尾部开始查询
# print('p' in 'Pychram')  # 严格遵守大小写

'''多维数组'''
# n = 5
# dp = [[0] * 5 for i in range(n)]
# print(dp)
# for i in range(n):
#     dp[i][i] = 1
# for i in dp:
#     print(i)

# n = 5
# dp2 = [[0] * 5] * 5
# for i in range(n):
#     dp2[i][i] = 1
# for i in dp2:
#     print(i)

'''列表'''
'''生成式'''
# a = []
# print(a, type(a))
# b = list()
# print(b, type(b))

'''列表的操作'''
lis = ['baby', 'txt', 'taxi', 99]
lis1 = ['hello', 'free', 'seed']
lis2 = ['need', 'cry', 'try', 'lod', 33, 'sex']
# lis.extend(lis2[1:5:])  # 在lis尾部添加切出的内容
# lis.append(lis1[0:2])  # 在lis尾部添加切出的列表
# lis.insert(2, lis1)  # 在lis下标2插入lis1列表
# lis[-1::] = lis1  # 切掉-1坐标内容后添加到lis1后面
# lis.remove('baby')  # 删除'baby'字段
# lis.pop(2)  # 删除下标为2的内容
# lis = lis2[0:2]  # 切出前面
# lis2[0:2] = lis  # 切掉前面
# lis.clear()  # 清楚列表中的内容
# del lis  # 删除列表
# lis[0:3] = [59, 40, 88, 28]  # 替换的内容可以超过被切掉的内容

'''排序:sorted()是内置函数'''
# 列表中的排序只能用于数字类型列表且排除str类型列表
# print('排序前的列表：\n', lis, id(lis))
# lis = sorted(lis)  # 默认为升序,这个列子会出现新的列表，  指向覆盖
# lis.sort()  # 这个还是原列表
# print('排序后的列表：\n', lis, id(lis))
# lis.sort(reverse=True)  # 倒序
# lis = [a * a for a in range(0, 11, 2)]  # 0步长为2赋值给lis列表,a可以使用计算公式
# print(lis)

'''小测试'''
# lst = [1, 2, 'ad', 'c']
# print(lst.index(1))  # 0
# print(lst.index('c'))  # 3
# lst.index('hehe')  # 没有查找的元素时index会报错       # ValueError: 'hehe' is not in list
# print(lst.index('hehe') if 'hehe' in lst else -1)  # 没有查找的元素返回-1   #三目运算
#
# '''同str，也可切片'''
# lst = ['b', 'b', 'b', 1, 2, 'b']
# lst = [1, 4, 'b', 2, 'b', 8, 9, 7]
# print(lst.index('b'))
# print(lst.index('b', 2, 4))  # begin为2, end为4,左闭右开
# print(lst.index('b', -1))  # 逆向查询时必须保证查找元素至少出现一次，所以-1起始位必须是对应元素不然会报错
# # 注意这里和字符串中的使用区别，begin可以不为0，index默认就是0，写了无意义
# print(lst.index('b', -2))  # begin是负数的情况下以负数下标去开始查找但是位置依旧是输出顺数下标位置
# print(lst.index('b', -3))  # 对应位置不是相应元素时，默认输出逆向方向查找时最后一个出现的对应元素的正向下标
# print(lst.index('b', -4))  # 这里搞不明白务必多改几次列表元素去尝试他的规律
# print(lst.index('b', -5))
# print(lst.index('b', -8))
